package com.frp.protocol;

/**
 * FRP协议消息类型定义
 * 基于FRP官方Go实现的协议规范
 */
public enum MessageType {
    // 连接控制消息
    Login(0),           // 客户端登录请求
    LoginResp(1),       // 登录响应
    Heartbeat(2),       // 心跳包
    HeartbeatResp(3),   // 心跳响应
    
    // 代理控制消息
    NewProxy(4),        // 新建代理请求
    NewProxyResp(5),    // 新建代理响应
    CloseProxy(6),      // 关闭代理
    
    // 工作连接消息
    NewWorkConn(7),     // 新建工作连接
    NewWorkConnResp(8), // 工作连接响应
    
    // 数据传输消息
    Data(9),            // 数据传输
    
    // 错误消息
    Error(10);          // 错误消息
    
    private final int value;
    
    MessageType(int value) {
        this.value = value;
    }
    
    public int getValue() {
        return value;
    }
    
    public static MessageType fromValue(int value) {
        for (MessageType type : MessageType.values()) {
            if (type.value == value) {
                return type;
            }
        }
        return null;
    }
}